/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package deteccao;

import java.awt.AWTException;
import java.awt.Robot;

/**
 *
 * @author Igor
 */

public class ControleMouse extends Robot {

   private Robot cEntrada;
    private int iEstadoBotao=2;

    public ControleMouse() throws AWTException{
      cEntrada = new Robot();
    }

    /**
     * Retorna qual o estado do botão do mouse.
     *
     * @return Estado do botão do mouse (1=Botão Pressionado;2=Botão Solto).
     */
    public int getEstadoBotao() {
        return iEstadoBotao;
    }

    /**
     * Simula o estado do botão do mouse(Apertado/Solto)
     *
     * @param iBotaoMouse - Botão que se deseja trabalhar (Ex: InputEvent.BUTTON1_MASK).
     * @param iEstadoBotao - Tipo do estado do mouse (1=Pressionado;2=Solto).
     */
    public void mouseEstadoBotao(int iBotaoMouse, int iEstadoBotao) {
        if (iEstadoBotao==1){
            cEntrada.mousePress(iBotaoMouse);
        }else if (iEstadoBotao==2){
            cEntrada.mouseRelease(iBotaoMouse);
        }
        this.iEstadoBotao=iEstadoBotao;
    }

    /**
     * Simula um duplo clique do mouse.
     *
     * @param iDelay - Tempo entre um clique e o outro (0=padrão).
     * @param iBotao - Botão simulado para o duplo clique (Ex: InputEvent.BUTTON1_MASK).
     */
    public void mouseDuploClique(int iDelay, int iBotao) {
        mouseEstadoBotao(iBotao, 0);
        mouseEstadoBotao(iBotao, 1);
        if (iDelay > 0){
            cEntrada.delay(iDelay);
        }
        mouseEstadoBotao(iBotao, 0);
        mouseEstadoBotao(iBotao, 1);
    }

    /**
     * Movimenta o mouse para uma determinada posição da tela.
     *
     * @param iX - Coordenada X da tela.
     * @param iY - Coordenada Y da tela.
     */
    public void mouseMovimentacao(int iX, int iY) {
        cEntrada.mouseMove(iX, iY+30);
    }

}
